bitkeeper revision 1.1721 (42b7bc5cSB_7vlyUCCpWT0qq4GN_xg)
authorleendert@watson.ibm.com[iap10] <leendert@watson.ibm.com[iap10]>
Tue, 21 Jun 2005 07:06:04 +0000 (07:06 +0000)
committerleendert@watson.ibm.com[iap10] <leendert@watson.ibm.com[iap10]>
Tue, 21 Jun 2005 07:06:04 +0000 (07:06 +0000)
[PATCH] vmxassist-cleanup.patch
Some minor fixups and improved debug output.

Signed-Off-By: Leendert van Doorn <leendert@watson.ibm.com>
tools/firmware/vmxassist/Makefile
tools/firmware/vmxassist/setup.c
tools/firmware/vmxassist/vm86.c

index a9b142363c49431a09f651ab11773f6e8903f3fd..97d6cc4c6ea9502b7275024f472a92cf522da9c1 100644 (file)
@@ -23,9 +23,9 @@ include $(XEN_ROOT)/tools/Rules.mk
 
 # The emulator code lives in ROM space
 TEXTADDR=0x000D0000
+
 DEFINES=-DDEBUG -DTEXTADDR=${TEXTADDR}
-XENINC=-I../../../xen/include
-#TEXTADDR=0x000E0000
+XENINC=-I$(XEN_ROOT)/xen/include
 #DEFINES=-DDEBUG -DTEST -DTEXTADDR=${TEXTADDR}
 #XENINC=-I/home/leendert/xen/xeno-unstable.bk/xen/include
 
index 64b9a6e06d0ffe01741680f6798a66f5c310a88f..dceac6409905b5cfba50491a3264131112354a29 100644 (file)
 #include "util.h"
 #include "machine.h"
 
-#ifndef TEST
 #if (VMXASSIST_BASE != TEXTADDR)
 #error VMXAssist base mismatch
 #endif
-#endif
 
 #define        NR_PGD          (PGSIZE / sizeof(unsigned))
 
@@ -118,8 +116,8 @@ setup_gdt(void)
                              "movl %%eax,%%fs;"
                              "movl %%eax,%%gs;"
                              "movl %%eax,%%ss" : : "a" (DATA_SELECTOR));
-/* XXX 0x10 == CODE_SELECTOR (figure out gnuas) */
-       __asm__ __volatile__ ("ljmp $0x10,$1f; 1:");
+
+       __asm__ __volatile__ ("ljmp %0,$1f; 1:" : : "i" (CODE_SELECTOR));
 
        __asm__ __volatile__ ("ltr %%ax" : : "a" (TSS_SELECTOR));
 }
index d63843660efc0881246ae7310de99470478e9495..d6ac1506837ed8171a7bae17c31bae3cff2e3576 100644 (file)
@@ -39,6 +39,13 @@ enum vm86_mode mode;
 
 #ifdef DEBUG
 int traceset = 0;
+
+char *states[] = {
+       "<VM86_REAL>",
+       "<VM86_REAL_TO_PROTECTED>",
+       "<VM86_PROTECTED_TO_REAL>",
+       "<VM86_PROTECTED>"
+};
 #endif /* DEBUG */
 
 
@@ -596,7 +603,6 @@ set_mode(struct regs *regs, enum vm86_mode newmode)
 {
        switch (newmode) {
        case VM86_REAL:
-               TRACE((regs, 0, "<VM86_REAL>"));
                if (mode == VM86_PROTECTED_TO_REAL) {
                        real_mode(regs);
                        break;
@@ -607,7 +613,6 @@ set_mode(struct regs *regs, enum vm86_mode newmode)
                break;
 
        case VM86_REAL_TO_PROTECTED:
-               TRACE((regs, 0, "<VM86_REAL_TO_PROTECTED>"));
                if (mode == VM86_REAL) {
                        regs->eflags |= EFLAGS_TF;
                        break;
@@ -624,7 +629,6 @@ set_mode(struct regs *regs, enum vm86_mode newmode)
                        panic("unexpected protected-to-real mode transition");
 
        case VM86_PROTECTED:
-               TRACE((regs, 0, "<VM86_PROTECTED>"));
                if (mode == VM86_REAL_TO_PROTECTED) {
                        protected_mode(regs);
                        break;
@@ -634,6 +638,7 @@ set_mode(struct regs *regs, enum vm86_mode newmode)
        }
 
        mode = newmode;
+       TRACE((regs, 0, states[mode]));
 }
 
 void